Linux
Linux
★ Linux – семейство открытых ОС, основанных на ядре Linux (Linux kernel), созданном Линусом Торвальдсом в 1991 году. В отличие от Windows и macOS, Linux не принадлежит одной компании. Это проект с открытым исходным кодом, который развивается сообществом разработчиков по всему миру. Само ядро Linux – лишь часть ОС, а полноценная система включает в себя множество программ из проектов GNU, X Window System, драйверов, утилит и т.д.
Как устроен Linux?
Архитектура Linux включает в себя следующие компоненты:
- Ядро (Kernel) – управляет взаимодействием с оборудованием;
- Оболочка (Shell) – интерфейс командной строки;
- Утилиты GNU – стандартные инструменты работы с системой;
- Файловая система – структура хранения данных;
- Менеджер окон / DE (Desktop Environment) – графическая оболочка;
- Пакетный менеджер – установка и удаление ПО;
- Службы (system, init) – запуск и управление процессами.
Первое, что заметит пользователь Windows – обилие команд через CLI, а также крайне большое сокращение всего, что можно. Если Windows рассчитана на простых пользователей, в том числе офисных, которым проще пояснить полное название, с подсказками и подробностями, а также на родном языке, в графическом интерфейсе, то в Linux расчёт идёт на простоту и удобство для разработчиков.
А разработчики люди другие – им важно, чтобы пришлось «писать меньше букв», они работают по-другому. Поэтому, в Linux, даже открыв файловую систему, можно увидеть, что все стандартные директории называются кратко вроде «root», «home». Никаких длинных путей, всё просто и быстро. Аналогично и работа с программами – чтобы что-то скачать и установить, порой не придётся идти на сайт дистрибутива и долго мучаться с пользовательским интерфейсом. Разработчики привыкли к коду, поэтому им проще найти гайд, вбить нужную команду в консоль и всё установится автоматически. А в использовании, проще опять же – вбить команду в консоль и выполнять, чем сидеть и настраивать кнопочки, галочки и прочие элементы в интерфейсе.

Компоненты
1. Ядро
★ Ядро Linux – сердце системы. Отвечает за управление процессором (планировщик задач), управление памятью, работу с дисками и файловыми системами, сетевые подключения, драйверы устройств, безопасность. Выпускается регулярно, каждые 2-3 месяца. Существуют, конечно, и долгосрочные версии (LTS, Long Term Support) – поддерживаются 2-4 года.
2. Дистрибутивы
★ Linux – семейство ОС, называемых дистрибутивами (distributions). Они различаются по цели использования, простоте, стабильности и другим параметрам.
Классификация дистрибутивов.
По типу пакетного менеджера:
- Debian / Ubuntu - .deb, apt;
- Red Hat / CentOS / Fedora - .rpm, dnf / yum;
- Arch Linux – pacman;
- SUSE / openSUSE – zipper.
По назначению:
- для начинающих: Ubuntu, Linux Mint, Elementary OS;
- для серверов: CentOS, RHEL, Debian;
- для разработчиков: Arch Linux, Fedora Workstation;
- Live-CD дистрибутивы: Kali Linux (безопасность), Tails (анонимность), Knoppix.
Говоря о дистрибутивах, их просто великое множество - всё из-за открытости ОС. Есть и общепринятые качественные оболочки, есть и простые, а можно встретить всякое - ОС с жесточайшим контролем, используемые в определённых странах (допустим, Северная Корея), оболочки в стиле аниме, различных звёзд. Есть игровые вроде SteamOS, есть и безумные - к примеру, Suicide Linux удаляет все файлы при любой ошибке в терминале.
3. Среда и ключевое ПО
★ Среда и ключевое ПО, службы.
Графическая среда (DE):
- GNOME – современный, официальный для Fedora, Ubuntu;
- KDE Plasma – мощный, гибкий, красивый;
- XFCE – легковесный, подходит для старых машин;
- LXQt / MATE / Cinnamon – альтернативы.
Графическую среду можно установить отдельно, через командную строку.
Службы (services). Linux использует:
- systemd – современная система инициализации и управления службами;
- init – старая система (SysVinit).
Зачем это всё нужно? И почему мы снова перешли в перечисления? Что за странные названия и сокращения?
Смысл в том, что Linux, в отличие от Windows, не ограничена правами одной корпорации, а развивается целым сообществом разработчиков. Каждый делает что-то, изобретает инструменты, делится с другими, и совместными усилиями «рождаются» новые службы, оболочки, утилиты. А ядро Linux и система пакетов позволяет просто взять и поставить себе любой из них, собрав из всех компонентов своего «монстра Франкенштейна».
4. Инструменты
★ Полезные инструменты в Linux
- top / htop – мониторинг процессов;
- df / du – информация о дисковом пространстве;
- ls / cp / mv / rm – работа с файлами;
- grep / sed / awk – обработка текста;
- find – поиск файлов;
- chmod / chown – управление правами доступа;
- tar / zip / gzip – архивирование;
- curl / wget – загрузка данных из интернета;
- ssh / scp / rsync – удалённый доступ и копирование;
- nmcli / ip / ifconfig – сетевые настройки;
- apt / dnf / pacman – пакетные менеджеры.
5. Сеть
★ Работа с сетью.
Управление сетью выполняется через:
- NetworkManager – графический менеджер подключений;
- system-networkd – для серверов;
- nmcli – CLI для NetworkManager.
Примеры работы с сетью:
ip a # информация о IP-адресах
ping google.com # проверка связи
traceroute google.com # маршрут до сервера
netstat -tuln # активные порты
ss -tuln # более быстрая замена netstat
nmap -p 1-1000 192.168.1.1 # сканирование портов
dig example.com # DNS-запросы
Файловая система и структура каталогов Linux
Файловая система Linux построена на иерархической модели с единым корневым каталогом /. Все остальные каталоги и устройства монтируются в эту древовидную структуру. Такой подход обеспечивает унифицированное представление ресурсов системы — будь то жёсткий диск, USB-накопитель, сетевой том или виртуальный интерфейс ядра.
Каждый каталог в системе имеет чёткое назначение, определённое стандартом Filesystem Hierarchy Standard (FHS). Это позволяет разработчикам, администраторам и программному обеспечению предсказуемо находить нужные файлы и компоненты независимо от используемого дистрибутива.
Корневой каталог /
Корневой каталог — это вершина всей файловой системы. Он обозначается символом / и содержит все остальные каталоги. В отличие от Windows, где каждый диск имеет собственную букву (C:, D: и т.д.), в Linux все устройства подключаются как подкаталоги корня.
/bin — основные исполняемые файлы
Каталог /bin содержит базовые команды, необходимые для работы системы даже в режиме восстановления. Сюда входят такие утилиты, как ls, cp, mv, rm, cat, bash и другие. Эти программы доступны всем пользователям и критически важны для функционирования ОС.
/boot — файлы загрузчика и ядра
В /boot хранятся файлы, необходимые для загрузки операционной системы:
vmlinuz— сжатое ядро Linux;initrd.imgилиinitramfs— временная файловая система, используемая на ранних этапах загрузки;- конфигурационные файлы загрузчика (например, GRUB).
Этот каталог не должен изменяться вручную без понимания последствий.
/dev — файлы устройств
Каталог /dev представляет физические и виртуальные устройства в виде специальных файлов. Например:
/dev/sda1— первый раздел на первом SATA-диске;/dev/ttyS0— последовательный порт;/dev/null— «чёрная дыра», куда можно отправлять данные без сохранения.
Устройства создаются автоматически при подключении оборудования или при запуске системы.
/etc — конфигурационные файлы
Все системные настройки хранятся в /etc. Здесь находятся:
/etc/passwd— информация о пользователях;/etc/group— группы пользователей;/etc/fstab— таблица файловых систем, монтируемых при старте;/etc/hosts— локальное сопоставление имён и IP-адресов;- конфигурации служб: Apache, SSH, systemd и других.
Этот каталог не содержит исполняемых файлов — только текстовые конфигурации.
/home — домашние каталоги пользователей
Каждый обычный пользователь получает свой подкаталог в /home. Например, пользователь james будет иметь каталог /home/james. В нём хранятся:
- личные файлы и документы;
- скрытые файлы настроек (начинаются с точки):
.bashrc,.profile,.ssh; - ключи аутентификации:
~/.ssh/id_rsa,~/.ssh/authorized_keys.
Домашний каталог изолирован от других пользователей по умолчанию благодаря системе прав доступа.
/lib и /lib64 — системные библиотеки
Каталоги /lib (и /lib64 на 64-битных системах) содержат разделяемые библиотеки, необходимые для запуска программ из /bin и /sbin. Примеры:
libc.so— стандартная библиотека языка C;libm.so— математическая библиотека.
Без этих библиотек даже базовые команды не смогут работать.
/media и /mnt — точки монтирования
/mediaиспользуется для автоматического монтирования съёмных носителей: флешек, CD/DVD, внешних дисков./mntпредназначен для временного ручного монтирования файловых систем (например, сетевых томов или разделов при обслуживании).
Разделение этих каталогов помогает поддерживать порядок: автоматические подключения — в /media, административные — в /mnt.
/opt — дополнительное программное обеспечение
Каталог /opt предназначен для установки сторонних приложений, особенно тех, которые поставляются в виде самодостаточных пакетов (часто коммерческие или проприетарные программы). Каждое приложение обычно создаёт здесь свой подкаталог: /opt/myapp.
/proc — виртуальная файловая система процессов
/proc — это псевдофайловая система, предоставляемая ядром. Она не существует на диске, а генерируется динамически в памяти. Через неё можно получить информацию о:
- работающих процессах (подкаталоги вида
/proc/1234); - аппаратных ресурсах:
/proc/cpuinfo,/proc/meminfo,/proc/partitions; - параметрах ядра:
/proc/sys/.
Запись в некоторые файлы /proc позволяет изменять поведение системы на лету.
/root — домашний каталог суперпользователя
Каталог /root — это домашняя директория пользователя root (администратора). Он отделён от /home по соображениям безопасности и доступности: даже если /home находится на отдельном разделе и не смонтирован, root сможет войти в систему.
/run — временные файлы времени выполнения
Современные дистрибутивы используют /run для хранения данных, актуальных только во время сессии:
- PID-файлы служб;
- сокеты;
- информация о текущих пользователях (
/run/utmp).
Содержимое этого каталога очищается при перезагрузке.
/sbin — системные исполняемые файлы
Каталог /sbin содержит команды, предназначенные в первую очередь для системного администратора:
init,reboot,shutdown;fdisk,mkfs,iptables;ifconfig,route(в некоторых дистрибутивах).
Эти утилиты часто требуют прав суперпользователя.
/srv — данные сервисов
Каталог /srv предназначен для хранения данных, предоставляемых системой другим машинам или пользователям. Например:
/srv/www— веб-сайты;/srv/ftp— файлы FTP-сервера;/srv/git— репозитории Git.
Стандарт FHS рекомендует использовать именно этот путь для сервисных данных.
/sys — информация об оборудовании и драйверах
Подобно /proc, каталог /sys — это виртуальная файловая система, экспонирующая структуру устройств, шин и драйверов. Она используется в первую очередь для взаимодействия с подсистемой управления питанием, горячей заменой устройств (hotplug) и настройкой параметров оборудования через простые текстовые файлы.
/tmp — временные файлы
Каталог /tmp предназначен для хранения временных файлов, создаваемых программами и пользователями. Содержимое может быть удалено при перезагрузке или очищено автоматически по истечении срока давности. Некоторые системы монтируют /tmp в оперативную память для повышения производительности.
/usr — пользовательские программы и данные
Несмотря на название (Unix System Resources), каталог /usr содержит не пользовательские файлы, а второстепенные, но важные компоненты системы:
/usr/bin— большинство пользовательских команд:python,perl,git,gcc;/usr/lib— библиотеки для программ из/usr/bin;/usr/share— архитектурно-независимые данные: документация, значки, локализация;/usr/local— программное обеспечение, установленное локально администратором (вне пакетного менеджера).
В современных системах /usr часто объединяется с корнем, но логически остаётся отдельной частью.
/var — переменные данные
Каталог /var хранит файлы, которые постоянно изменяются в процессе работы системы:
/var/log— системные журналы:syslog,auth.log,kern.log;/var/mail— почтовые ящики пользователей;/var/spool— очереди задач: печать, cron, почта;/var/www— корневая директория веб-сервера (в некоторых дистрибутивах);/var/run— устаревшее место для runtime-данных (теперь чаще используется/run).
Этот каталог критически важен для диагностики и мониторинга системы.